@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@P!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%} DD˙`  }J)Lr J  ((  p L ()   J}L= ( L 0q A    IB JC;? D W } LL  ` W )LA!  ߰")-݆ p" } $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ` }$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H }p h  hyhy D L> L JJ    ! LA*` BF }7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L }EE !E^ ^ E E7EȩEdE/EȩE  D } .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `1  ɐ     `TU  } L ? .  t`GBJ ~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI4 0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV J y08 B|DEHI$} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D1:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -'}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH(}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu  } 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDG*}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRES+}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N',}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx -}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT.} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD0}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.1}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}COPY--FROM, TO?OPTION NOT ALLOWED736 FREE SECTORS COPYING---D1:DIRECK.COMl# 0|D .L/%#3}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY4}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 5}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A6}LLOWED IN DESTINATION 0 <.|K}N 2 FORMAT. t* 5) 1L!`) 0NΞ 0 L1) 1 L!BAD LOAD FILELOAD FROM WHAT FILE?) 0 ?}0#B 1L!WHAT FILE TO LOCK?) 0 0$B 1L!WHAT FILE TO UNLOCK?DUP DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO US@}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE! +L1   `*  70 2 2A} 0.* 1 y0 0)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 N, 1L! ,B}C, t*  Lx+, 0 ^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0C}Ξ, 0 }, 1 y0C,ШC, 0K'!" H H 'h h Lx+!EF 5L1L!D,I,HhD}` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNE}`  `8 rL1`-* 1P* 1 y0Y`hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.F},^ 1 70 0 .@L# .BJ 1  DEHIB V L1 ,} 1 70,L.  G}JB|,#P#DE 1 HI BDEHHII 1 B 1 ,^ 1 70,0La- B V,#PH},^ 1 70 0L#L!-* 1P* 1 y0Yj383}mm ݭI}}`8}``|* ? ɛ,`|:-)| / 1L!`DESTINATION CANT BE DOJ}S.SYS0 0H{ 24Δ 28/L!/) 2 Π 2 0 ξK}hAΞB,0 J 1 BDEHI,HÝDE 1HIHIDELSAVE-GIVE L}FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!M}0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1 ,;ɛ7,"ɛ:ݦ1ݥN}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{NAMEO} TOO LONG B VL!` L1I H1EΝDL1|mDiE` V0`8d/8 i:222 1 LP}!ERROR- 138ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uR} ECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8u78 8 8P?@     YLM8  Y0 L8Lj8K65: 850 not respondingT} BPD8EHI V` 8 8C8 De i L8` L7DD -.E:R:  ~U} ~A-A-LK-ȱ`A-`a{8 `:.*?0 : A[8``b- d- p-b-`V}-eiVͮ-PɛM d- p-D*? H --ha-HѶHihih- --L.ha-L-`-W}: -0- -LI.-. -- --`c-a-a-c-` i.`Ȫ`a- . x.: i. . x.. iX}. . x. i.` 豲` . . .`L2L=L=L=L>L4>LV>9/Alj;k+*opu i-=vcbxz436521, .nm/rey tY}wq9078<>fhdgsaLJ:K\^OPUI_|VCBXZ$#&%"![ ]NM?REY TWQ()'~@{}FHDGSA ;  436521,. /Z} 90``8>lj;kopuibnm/y thg89/H)hL{0 --I--Lu0[}CLu0C 8 0C d-`[A[B[D[COPOQOROSOpOqOrOsOtOuOvOwOxOyOnOm\}OlOM)  l lL0`JK`DE`HI`B 1 1 V`H B 1 1h V` 1BHILVHJ]}KhLA1HJKhLA1H JKhLA1HJKhLA1 BLV - c10/10`L-1HHH1ɛ)  ^}1L1hhh`H1ɛ 1h`h"/h#/H"/Hi"/#/i#/ /$/'/+/ . .` /_}+/l"/)/*/'/(/%/ /$/'/+/ . .l"/,/-/./L2 );L2L3L\7La8L[7`}Ld8L9L9 L~:@ .`HH )=w) Bj$/8ƅ'/L2?6 j@ . . .8a} .$/LJ2 [hh%/L.h*/h)/'/(/%/`HH&/ii2/ )=08b}L4)L4,./$/ Bj8ƅL3$/L?2/h*/h)/'/(/%/`4/4/4/c}L6 )=0L5)?R j$/,/ALz4!A . . 6 .,./ > .8ƅ .LJ2L5$/4/H2/Hd}HH &6L 5,./&/L? Bj8ƅ'/hhh2/h4/4/LC48ƅhhHH i揊ie}'/L)5'/i懥// .hhh2/h4/L5HH4/H &6L5+@ .L^2h4/hh4/4/m4/f}ȱhh%/L.A0[ 7/&/8/i揭7/8/LC44/4/4/m4/2/L42/`4/4/7/i4/g}m4/揠8/i揱87/0/8/0`0/L.7/a0{)_)7/`1/7/5/8名0/i5/h}5/0>//i捭0/ ѐ 0/0 "7//////m//捠L67/,/Q@L7q@ . .1/ .`7/,// ji} .1/ 8 i iLR7 .1/I1/`-/HH. -/Lq7 )=0L+8)?A j$/2A . .,./ > .8j}ƅ'/ .L}7.$/,./.L? Bj8'/LJ2.LI8-/0LI8.hh%/.L. 0k}a0{)_..L}7h*/h)/'/(/%/`L\7HH0L9L9///////// )=0LC9)1,./ l}/ /L? Bj$/8ƅ'/L8?Y jUA ./ 0i0 j/8 i0 j .,./ > .8ƅ .m}$/LJ2//hh%/L.`08'800/0h)/h)/'/(/%/`H/H/HH/H .h/h/hm///i/ L8@ .L^2n}Ҡ@ .L^2`HH. )= >LP:y)?A j$/nA . .,./ > .8ƅ'/ .L9.$/,./.o}L? Bj8'/LJ2..L9.hh%/.L.h*/h)/'/(/%/`HH )=y) Bj$/8p}ƅ'/L:?_ jA ." j-/ j" j .,./ > .8 .$/LJ2-/ hh%/L.h*/h)/'q}/(/%/`HHH$/L='/ Bj'/L^2 j( $    ɀ('/!%/)/*/(r}/'/6/L<i慊' ǁ8 i i . '/LJ2' 4 '/'/'/ BjL;8ƅLJ2Ls}<6/8ƅ6/'/0L; L<0% L<#0'L<00:Lh>h >h >h>h > > >n >n >n >n >>m > > >m > >ܭ >H >H>H>H`w} ///hhiȅ ///l)08L8>JLF>..` J08LZ>8jLh>9..`.0` /)x}08L>JL>9. /L. /`,/H3/3/,/3/L? 0L?HA .hRHHHHHHAL ?!y}A .3/ȱȌ3/ 6hhhhhhL>L>2AL?CAL?@L?nAL?0UA .3/3/ 01 jz}3/8 i0 j . iL>A . .L>h,/`8ƅ'/'/ Bj'/L^2 '/L? ȩee$/8 {}.LJ2 ?program error: invalid comnd call ?ambiguous ?illegal input file spec ?no keywords match this prefix ?no switches|} match this prefix ?bad character in integer number ?base of integer out of range ?overflow while reading integer number }}confirm with RETURN keyword, one of: switch, one of: input file spec output file spec integer number in base unquoted ~}text string single character token or [CC }CC&& ^^##CCCCCcD1FOO DAT*.* Kermit-65}>hChCC 1 gR'S 6X nX Xm . . wDLJC8D .nr .LDhCiClhCmhChCiClhCsxLD}xLDxLDxLDyLDyLD,yLD/y .CL{D cLD h JGCD CC UC, .C !iG . .L9E F }jW {kRC G*-)*-eCC yEmEsE LGLE GLEC 8- B-*-  L= [` Hj` I8IeT==U [` IeT>>U [`} IeU IT [` I8IeUT [` I  > lIU`?CBE` IƮ0 LI` IƮ0 L}I``COP`'(`Uy``H`H`I`I`U(` IU(`O(` I(iP`UP}(OT [`[MED789HI(m)wJjHKzHAHBICID6ImMIM{ILI;MfHHHrH?`gIHHfHrHmMI;Mhl;`B}I0IAIBI0IAI JCCHCHl ` .LDLDLD h JLD` jyCCCAyC{C0 Zy . .`yC]C[C}LAG\C l Y] W^ɭ\CYL.Eл vg` h jyCCCAyC{C0 y . .LDyC]C[CFAG\C l Y] W^ǭ\C}YLDEй vgLD jCjC߅C i . . . . . .LDͲC0CjC[CAHH hhh߅C} h h hR\C]C Y] vL cLD jCr .LjLjC߅C h hC h vL kLDR|CxCyCzCCC}CCCCCCCCCC|CD NLLF MLLR LLLC`C %]`AyCyC{CLMA|CC` W^`C\CS}L3M`CC vgA|C`xC]C m`]CxC Hm lY\CxC]CC!0 ?0`00 CLnMC[C Y]yCzCyC WgF|C}`yCyC{CLMA|C` W^`C\CSLMZL-NFLmNBLN`CC vgA|C`xC]C m`zCzC{CLNA|CC}`]CixCLM lY\C[C Y]yC`zCzC{CLJNA|CC`]CixCL=NY\C[C Y]yC`]CxCLNA|CC}` QfW a aY\C[C Y]yCzCyC WgD|C`]CxCLNA|CC`Y\C[C Y]C|C`yCyC{CLNA|CC` W}^`C\CDL>OFLOZLP`CC vgA|C`xC]C m`]CxCLOzCzC{CLfOA|CC`]CixCLYO lY\C}[C Y]yC` k {e)Y\CxC]C[C Y]yCzCyC WgD|C`A\C[C Y]A|C c`zCzC{CLOA|CC`]C}i)?xCLOY\C[C Y]yC`]CxCL3PA|CC` cY\CxC]C[C Y] WgF|C` P DX}P .XPP 1 VPWP`VP 1`VP P 1VP`VPLBQP 11D *e 1#D 1 #D$DȌ#DƤ-D 1 } -D.DȌ-DƤ 1 12D 13D 14Dɛ 1LQD`C 1CȄɛ P8` c h b k b iPqQ rQ j Q k cL}D kqQH {P PhLQqQhqQ P P8`DߠC . PqQ`S|CCxCyCzCCCCCCCCCCCCC}AZ0|CD @RLQF RLQZ SLQS TLQB TLQC`C %]`yCyC{CLXRA|C`D\CxC]C~C[C }Y] W^`C\CNLRYLR`C vgA|C`]CxC]CLR`xC]CyC Wg k d~CCLRC cZ|C`D|C`yC}yC{CLRA|C`C ɛALR[CF\CxC]C Y] W^`C\CNLJSYL[S`C` vgA|C`]C]CxCLcS`xC]C}yC WgR a a d~C jD|C`yCyC{CLSA|CC`Z\CxC]C[C Y] W^`C\CNLSYLS`C vgA|C`]C}xC]CLS`xC]CyC Wg FfLTB|C`F|C`A lyC{CL=TA|CC`yCS\C[CxC]C l Y] W^`C\}CYLTNLT`CLT vgA|C`xC]C` HmCNCF|CyC Wg`yCyC{CLTA|CC`B\CxC]C[C Y}] W^`C\CNLUYLU`C vgA|C`]CxC]CLU`xC]CyC WgC|C`n .LDhCiClhC .LDnC}oC .LDoCLDnC0LDCLD hLDCC CCC .LD 6X XLD hLDC .LDLDCup} .LDhCViCLDCup .LDhCViCLDL"WLVLVLVLJWLrWLW酊q .LDC .LDLD hLDC .}LDLD hLDC .LDLDpq .LDC .LDLD .LDLD0LD!0?0`0CC .LDLDŠx . h}LD .LDLD0LDCC hLD  .LDLD0LDCC hLD .LDLD0LDCC hLD } .LDLD^0LDCC hLD .LDLD0LDCC hLD  .LDLD0LDCC hLDޅp}p .LDC .LDLD .LDnCoC .LDnCCoCCLDp .LDC .LD 6XLDC)CC{ }CC`&q .LDC .LD nXLDC)CCR{ CC`q .LDC .LD XLDC)CC CC` hL}DC .LDLDÅq .LDjC .LDjCCLD .LDnCoC .LDnC0 i0CLDLDoo .L}DhCiC NYLDlhC h Y Y Y Y [ [ +\ P\ Y Z Z [ `\ .Z |[ W[` hǠ| .C0\qC{rC HH =i . .` hޠ| .}wqC{rCHCH =i . .` h| .CLh h } .CLh h#} .CLh h:} .CLh hQ} .C !i .` h|~ .C }iC i .`Cup .LDjC hhCZiCjC LDCup .LDjC hhCZiCjC LD ZLD ZLD ZLD [L}D D /[LD C[LDʠ} .CC !i .`} .CC j`m} .CC !i .`} .CC !i .`} .CC j`~ }.CC !i .`'~ .CC j`Ch} . . Z Z Z [ [ /[ C[`CF~ . . Z Z Z [ [ /[ C[` hN~ .C0}qCzrCHH =i . .` h~ .C0qCzrCHH =i . .` h~ .C 0 qC{rCHH =i . .` h }~ .C  . .` . .` h٠~ .CLh h~ .C j .` h z\LD7 .CC jZ .CC j} .CC j} .CC j .à .8CCCC j .8CCCC j . . .@,Cp C %] .`A . .`H) zzh`}H ] .h`ݠz .hH ih`HJJJJ iyh) iy` j8 i i| . %`CC i_CCC hL] h[CiHi C }hhmCCCiC]Ci HmCCh h\C)HmCCh hcCcC[C0L]mCC hcCL]C)JJJJJJmC)?i hC h_C^C}_CC d`_C_C^C [B l_CL6^C d`` gL_C !hLq^*-8 i i| . %`CC iC d`}CcCpC hL_pC)uCuC0L_ cCL^ hL_pC)uCuC pCmCCuCCL_pC8 8[CL_} pC8 ]CL_ pC\CL_CcCcC[C0L_ hL_pC)uCL_pCmCCpCcCcCL@_L`C)JJJJJJmC)?C}uCL^pC8 CFC8z .pC i jC i_CC d`[CmCCCiC\C`_CC d`[CmCCCiC`}Rz .CL_CCCjnCjnCCmCCCeC`ͷC0͸C0`L.H .htCCLFa|Cc .} iP PWDC . jC 1U 2D0 H0hLc j1D Uc . .LcC 1 PLDHcD} hrhLd .L%d hߠC .`8` cM b b c@ hٽCCȘiCi . k@ B 1C 1 V}LbLD c' h b b k@!B 1C 1 VLbLDcC ifLlepCC /-pC B-pCCLdpC)CcCȌcCpC})pCpC) C- )fCL4eL4eͶCL C HBHUj .h i`j .h i .0`&-` k0#D-E JKHIB V"BJDE V}&BCJ V$BCR{J V(BHDKEI J V ej&- 0k`&-&-(-)-0L1`0 B V ej'-(-})-'-Crk .'- i .(-)-`Com err _l--J(-)- 0k(- )-`(-(-)-0 1C)*-+- }l`FramingOverrunParity Buf OflBad OptDev NR 850 errCmd errRS ok '--*LIl iHkih ^ Hji }l`l ll ^`C.-- 0k.-)- (-02 l`)- (- l`HH {khh`ll0 -1ll` k0J}"B#D-EK V jLV.-.- l `cCCi ȭCi ȭCi ȭCI@ȭCi ȭCȭC}C`Y`8 Cȱ8 Cȱ8 CȱI@CȱL~m CLm8 CȱLm#Cȭ[C 0BE?C `ɛ C* `H h'}COU F H h `C NJ T [`T>LցȦU [`T=U [` `TU [`TȦU [`UʤT [`U(}CPT [`TH TT ǁLYhT`THThHT ǁTLrhT `C}L1THT ǁTThT` C ˊnF C } C C Ԍ C ߈=HT= ցh=`=HT= h=`UNTO?PBQCRES`NO} [P?QBRCSE`0)CQ HH hUhT`K LK ˂`K ˂K8,-<8J`J } ˂C $LILC %C` 56 C&ȹ&ȹ&ȹ&ȹ&ȘH h&۩` |ă }xԃP(X`hp∢⠢ ⨢Ⱒ⸢أ33330@@<@@@~$$>>H }hXH@DD(>xUpp;nLxHUT ah`HGI8 }E ULCC`U890U8Lc%0U8%Li(0(9 r`DDDDDDfD"D"UD }DU"D"DDDD"D""""DffDD""DD""DDDDDDDDD"D"D"""""" }D̪D""DDDDDfDDDDDD"DD"D"DD"DDDfD̪̪ff̪̈ }̈DDDDDDf"""D̪̪DD̪̈DD"̪̪fD""DDDDD }DDDDD"DDD""""""DD""f̪ff"ff }Dff̈Df"̪DDDDD""""D̪DDDD̪DD̪̈Df"3̪fD"DD }DDfDDf""DfDDDDfDDDDDDDf""3""fUDDDDUUUUw""̈wfD }̈UfUwfDDDDDDwDw""DDDDDDDwDDDDDDDwDDDDDDD }DDDwDDDDDDDDDDDDDDDDDDDDDDDDDD"DD"D"D"D̈̈ffTU aP8U `T aU } `UHU nhU`=Ȣ a aP 樥>ܢ> aP `> a aP ƨ=ܢ= }aP ``8 i aI`&&e&&&&POe` )ee`THUHTUUT }aTeTeTȥm9iȑTThUhT`]8C.-  -- TC@`pȑȩ ȩ`Bȩ }ȩȩAȩȩ` ߉BȥiPi ` ߉Oȩȩ lOȩȩ l `_``/0 1 }234TFC`0/10123T4` 1`UH'U 1LΊhU`UHUhU H 1L`UHU ˊh }U```` 1 1` A78 :;<C`LxPQJM`H  9e&&&&&e }ih ii`ii`)`HGI8 H&&&iviTU LQ-MAB } MEMMi(iL hU``8 i LMMi(`UT L(M0 1ȩ'8 i( }iƨ`U5T LU 9M1 i(iƨ`T L@ ˍ`= 0k _l L L }@ 樥>ϥTH>T hT`> 0k _l L L@ ƨ=ϥTH=T hT`ɛ`8 }LdH(h` ƭ ```&&&L э` ƭ `` }`hh8*ȱl`B/ԍ01B` ƭ ``f@@aceX@@U@Π for menuΠ to continueDone!Π to continueX@XD(LA&HAA @,J&EA }!CH&@+NR&@Sz!C$@ @,J&EADP&EAc }R&9Alc$@D$@$_@( IcE( V@ ˸堠 }򠠠 ҠRead CONTROL.DAT file ѠQuit to DOS ĠDisk directory Select: Free bytes:(&BR }֚֚VF[Aܚ[FAFܚbFAܚfFAܚkFAܚ $B$B @,J&t }BJzP @,J&B( $BTJ$B$B$B\QXB\R_B\DB$B$A( ҠRead QWK8.DAT or ӠScan MESSAGES.DAT file РP }ost a message ŠExit menu ֠View conference data (&QDR֚֚pF[AܚuFAFܚ|FBܚ }FBܚFBܚFCܚFAܚFAܚ $(D( $ND( $ND$ND[$NDTJ$ND? }` @,J&D( $NDV @,J&D( $ND$ND$ND\EC\PC\QC\VC\DC\RC\SD$"D$$C( ҠYDFRead m !}essages ŠExit menu ӠSave index in QWK8.DAT(&_ER֚֚F[AܚFAFܚFUDܚF "}tDܚFAܚFAܚ $@E( $\E$\ETJ$\E( $\EU^$\E$\E$\E\EE\QE\D"E\R)E\S3E #}$:E$D( ( F @ @, @, @ @, @,F @ $}F @F @F @ @ @@@ @, @,@,@,( %} }%s%s %d%s%s%s}%s%s %d%s%s%s%s%s%s}%s%s %d%s%s%s%sF7JOverflow...( &}L&FP&F&FFH&GnIF&H,,RRG,H&UG '}&G,H&yG$G,.,,,F. F( FH&G.JF (}ܚ3J%@ܚ( $!G( (L&+HP&+H&6H, )}FX&mHT&mHH&HZ&HXHT&H&H&H$H$OH,, *}H&I,,,,$I,,H&TI,,,, +}$^IF, F( (F FFF,F,FF FFFFF.,F ,}FFFF, F(   FF. F,F. FFF, FF F F FnIcE %s%s8J8NWhich -} drive#? = D1:(CP8Jܚ H&|J1 PK Pܚ d .}L&JPܚ$JmP&J$JyP@ܚ( Abort ҠRetry(E#P8J /}ܚ H&TK1 K&K L&K(Pܚ8PKܚ 0} $K$K$K$K\AK\RK$K$K$vK( 4LD , ,: 1} ,J&]L,J&]L&xL,4L,,, ( @, 2}J&LH&L&L,H&L$L ,$L( ( @,J&4M 3}&4M&gM,H&UM$dM ,$M( (L&M$M D$zM, 4},, $M, ( ( O ( Select conferenceNot a valid conference n 5}umber(=PMܚ9NpPMLH&pNEP N%@ܚ( Enter message # -->Out of rangeRange 6} is(MPNܚ \PxNܚMLNP&N&OaPN%@ܚ ( 7} ( J&OOL&OO&O R&mON&mO&O$OP&Oߚ F 8}$O$Oߚ D, $O$O\~wO\\O\`O\{O\}O$O$.Oߚ, ( %s*.*%sCan't 9} open %s%s%sCan't open %s%s%s #: %s%s%s %d to %-3d%s %s %d to %d%sqPqTReading (BlV :}rKP&PxVqPܚPyV:@ܚ( ($ ;}d, L&\QVܚ(  N&S$Q D$dQ <}  D J&Q D$Q H&(R,J&R D =}$Q D,$RFǚ$R0J&lRVܚ( $R  >},$R$R$R\/R\/R\ SR\ SR\ oR$R$R$R,$R$R$R\R\R$R D ?},.$sQ,&TN&T$IS D$*S L&Sǚ @},.d,  D A}J& T D$S $T  D,.$TU&rTV B}T D,. F$T$T$T\T\_T$9S$S @, @ @, C}, @,,( ( ,!R&RU!, , D},FJ&dVǚ,,,, E}, , ,H&4V$KV, ,, F}( CONTROL.DAT%s%s%sNeed Ascii filemistakeV Z(B]rKP&W^qPܚ G}Wy ^:@ܚ( (8HH.d&Y4[<< H}, H.dHz,J&Wz,J&W&W&W^ܚ&Y<{, I},<,|,0,,H:,MoM  @,R&aX<y J}, $pX<n, oM  <,F ,L&XH , K}F,P&XH,toM  <:,8,6,4,. L}Z&YH, D,<,yH&YH, D, FL&Y$Y D M}$YH.d$Y$Y$3W @6,(6 Z^( FJ& [ N}, ,, ,,H&Z Z$Z O},,, Z , Z( (R֚ @,J&[ P}^,ܚ DR&[*^ܚ ,$6[6^%@ܚ( & Q}pL0,N0,К (;:^aB^aH^a R} L&\ǚ S} L&,]ǚ T}   L0,֚M0 U},֚N0,֚%p( MESSAGES.DAT%s%s%s^K^mistake #%-3d %-33s> V}- More -<%s65536.0256.00.5L^LbQWK8.DAT(HL^wKP&;` @,J&^ W} D,$^bܚ @,bܚJ&_bܚb, X}ܚb,ܚc,ܚc,ܚ,$^ @,c @, Y}ܚJ&"` c,ܚc,ܚc,ܚc ,ܚ Z},$_yc:@ܚ( (FL^rKP&`!cqPܚ`y [}J&` @,(c:@ܚ( (&m L&a$a D$ \}`m j, m ,j, m ]} ,,,,,Z$a @,m ^} L&b$=b D$bmMb,c ,m , _}m ,m  , ,$-b( Saving to %s%d%d%c%d%c%d `}%d%d%d%d%d%s%s%s%s-c-g Read ll ersonal astread onference uit iew Conf.data et Screen widthQui a}t to DOS? y/[n](\&dR֚֚i[Aܚhi-cܚiUcܚiAܚ b} $di|cܚ YH&7d( $d[$dAe$d( $d( $d c}e&d( $d+NR&d( $d$d$d\Q d\VAd\SHd\AOd\Pbd\Lud\C d}d$d$c( Screen width is: Input desired width--> = No change( V@jeܚj,eܚ je e}O H&eV@$eRe(L&e&eV@jܚjܚ V@( f} LASTREAD.PTR(XerKP&f,jܚmm g} my g$f( (Ie9j8Jܚ q}B%DOS SYSB*)DUP SYSBSK65 COMBQWK8SDOSCOMBQWKREAD TXTBREADME TXTB RVERT212BINB(SMARTT COMB 8SMARTT DOCB ESX212A COMB QSX212A DOCu^TVI925 ACT TVI925 TXT H&g1 KwL&Kg=j.gjܚLj%@ܚ( $gQjܚ r}UjܚYjܚy]j:@ܚ( ( @,R&gR&g&injܚpj,, v} ,,ܚ  DR&ijܚj[AܚjDhܚjghܚ ,$ w}hjܚ( }%s%s%s%s%s%s%d%s%sOut of range <40 to 132>Reading %s%sCan't open %s%s x}%d%d%d%s%s%s+ #%-3d %3d message(s) %6d to %-6d>- More -<}%s%s%sTotal:%3d message(s) %3d personal( y}+)jn From : To : Date : Subject: :Message #:%s %s%s %s%s%s%s%d %s%s%s%s%s%s%stx>- More -< }(XVbT}`R&Wub, $%u` }R&qx^bb, `,b,\,ǚV@P&w }N&wV@H&^wR&iv\,, ^, V@..,,$v\ }, ^, &vRyZܚ$vRyZܚ^V@H&vTH&v&v } D^,^ R&@wTH&@w&[wytܚ$w^, H&z }w D D$u&wRyZܚ$wRyZܚ^V@H&wTH&w }&w DR& xTH& x&Ux&5x$=xyܚytܚ, D }$duT&xRyܚb,, (\ Print to rinter, isk, bortSelect: Input filename--> (Hyxܚ } xyAH& y( $yPH&SyywL&Hy( $Py( $yyxܚ }?OYN&y( $y( ( %s%s%s%s%s%s%sP:%sy}in conference }:Subject: -->Private? y/[n]New name or -->New subject or -->Enter message, exits( }aoMІ~yܚ YH&z* $z cJ&W{ }oM  .oM GoM ~jܚz }ܚ$t{ yܚOJ&{H&{${jܚ }O @,, @,oM jܚ#yܚoOq }H&^|qߚJ&|*kyܚ $|4yܚ=kܚDjmܚKj }RjܚY2zܚi]iJ&~ @g @g,,d&~FJ&~ } - - o.- G- l }- }\z, {, |, m @mJ&_~k,,m, }QH&M~,mk,$~20J&~ D0. D }Іt- Hn(g %s%s %s %s } %s %s %s %s %s %s%d> %s }Post %s%d%s%s %s%s %s%s %s%s]9(R֚֚8ܚjl }&' J&&&ځ R&N&&ÁV@H&R&#, $2 }, hK&R&..L&ـ$ D$j,, },, ,ߚ,,, $z$ D, ߚ$$Á$ }P&Fߚ F$Áߚ D, $Á$Áߚ D, $Á$ }\~#\ I\\w\`w\{w\}w$zH&ׁ$&$ߚ, hK&$$ }$fhfh,,(h ( ,,FJ&0 }ǚ,C, ,H&$,, },( >>ѠQuit ӠSave ֠View ŠEdit àColumns(@J&~($(&@!> }ܚ&Fܚ $06ܚYH&݃n( $=Ae$= @J&*$( $*D$*$* }$*$*\S\V\E $$=$=\Q\C$$( ( R֚֚ @J&j }, ,AܚQH&ׄG:ܚ,JܚV@0R&,$+V@ }R&,$+ DR&KMܚ D,$x( (  @J&  } @J& ,,QH&ՅH$,,H }$ @@ @@( (L&[,J&[&,,,  }D$8( (L&̆$ D$, $( (&N } D,0,  20.  2??H&K$, , } .R&҇$ F$ D,, $( Save post or reply(UYև }  @]YN&O( $, WH&ψ }b @ܚ @.L&ψ$ D$eܚ$g @ }J&,QH&:g,L&$^ D$>, }H&$,$N,$L&$Ӊ D$ $Éy }( Some kind of errorCan't open exists.ppend at end orנrite over file orŠxitType A, W, or E-->(G },:J&g8Jܚ H&1 Kkܚr }P&ypܚxܚ|*ܚ?ܚFܚ @$( $a }L&q$wL&$$$\EF\AP\Wt$$ߋwL&׋$ߋ }W H&ܚ$, ( %sBytes free: %dQuit? y/n%3d>%s%s>- More - }<%s.MSG%s %s%s%s %s%s%s%s%s%s %sxit nsert elete iew aglinesInsert before which line? --> }delete at which line? -->Add at end? y/[n](#ܚFJ&o&o*ܚ/Fܚ } $PH( $l?ܚ HNH&&׍CܚO } G2zܚ]J&U,,YH&/ܑ$U @H&Gܑ$U }Ȑ$l&KЌܚO UЌܚO } P&]ܚ$`H&s$9N&9$- D$ s$$l$ }lD$l$l$l\E\\Iq\DX\T<\VC$J$)( ( @J&Đ @H&ʏ @ @, }$GJ&H&&G,H&7,,$D } D$ҏ&Đ,QH&qH$,j,H,H&Đ } @,( ( @J& @J& H& &H&F @, },$H&,,,,$, D }$$ؑ @ @,,(  @H& @$  @,, @,, Edit }%sBytes free: %d%s%s%sBegin %sEnd %sBegin <= Endkk(=HH.oM  }:  J&L&& D D$ƒ H& L& & }@ D D$H&^, $t,F, ,> , HH }oM HHoM HHH HHHHH }., H&[ F$8D, HHCF }?K@A@A,,H;GQ CH,L&FGF,?l }&C DD,,,$@A@A,,(A (  }FJ& , ,H&$,, },( &| @@@,@,@, @, @ @lZ,,$ @ @ @ } @,, oad taglines (or any textfile)ave editor contentsos directoryuitSelect: Input filename--> ( }&ܚܚЖܚ5 5QH&O(. $ 5DH&bTJ$  ܚw5w?O }w,:J&Ǘ8Jܚ6 H&61 74K5LH&r5rP&owwu }duL&<ܚ$oy5r*qP3ܚ$.3 }YN&(. $.15ܚ3 @3J&=/ܚ31,$Aܚy }C:@ܚ$(. (mR&R&R&FR&l$R& }Hܚ, $, K&$$-,,ܑ( On at }, wrote:%s%s%s%s%sNeed Atascii file%s%sSaving %s%s%sLine truncatedn[,, , ,, },,,,,!,$,',*,-,0,3,6,9,<,?,B,E,H,K,N,Q,T,W,Z,],`,c,f,i,l,o,r,u,x,{,~,,,,,, },,,,,,,,,,,,(f/$%t$ry$( (rfrrʚ|r }f|rܚr$B( ›ܚrnߚߚ can't open %sfilename (or RETURN to exit)? , }(?L:6L,2L5LU4Lt5Li5L-L3L+-L6L!5L2L1L3L-L1LW.La.L1L6L4L4LO5L4L.L4L4L45L,L,L3L]1L5L4L1L4L5L-L2L3L/. }L1L=.L1L/L-L3LD2L_5L5L3L.L.L-L3L{2L2L2L2L{.2lȱňı88必ƥDZ…ȱ…ťi ,ԆL!8 , } 46`* 76`L, `ƅˈƅʈƅɈƅ` -ƝB EƝD IƝH ƝJ ƝK }VIi`` -L,BHI V0ڢ`ȱ G-FȌ- tLw- -ձʑ `ƙȥ }ȑ`ƙȄͦʥ``ƅɈƅȢ`ƅȱƅ̠ƅȱȪ̑Ȋ` /.HȱȪh` -ȅȱȅͥ }ȥʈȦͥ`ƅƅ إԅ) ٥0Ԧ`IIi` -L- - 80`` -V/F\/G] }/\/]/ƅȱƅL*/҅Ɉƅȭ]/\/\/]/V/Ȅʩ΅ϩ %$ U/L0/`( 46 z-Ԇ }բL!8ȱ% 2-Lp/.Lp/AL/ȱ: 0蝀懲詛 ٥ ԅΤLp/ԅϤLp/D }L0ȱIՈIiL0Ոƅ إ'0ȄΥΐ U/ R0L0 R0Υ U/LD0 - U/Π }0. U/Le0)LU/溤`XL0ȄƅՈƅԥH)JJJJi0:i U/h)i0:i U/ L0 }L0/C ʱ U/L0SL4ʱƅȱƅť K1L0ΰ U/ K1LH1 K1ΰ U/L0 U/` }`BP B VBD1EƝK)IJLt-S:ƅ`ƅVȱƅTƅU` 1 0`Lz- 1`BLt- 1 - } BIƅɝEƝDȠˆ 2󩛑Lt- - BLt-ƍ+2ƍ*2ƿƿiƐLt0`8Hƪh` -̄ͱʅα }ͥ``ȱܱƅɈƅȢ`{a `A[i L2 -Π 2Ȉȱ :*  }D1:șȈ..Ȅ̤αʤ̑`@i`ƝDȱƝEBȱƆ 2A }RWUD`   J V0JJJJ`Lz-ƨx`ƨТ`ȭ Ȑ Ң`ƝEƝDBI }V0 ($`Lz- -L3 -B0ƝKƝDȱƝELv3FL0ʱƪȱƨ ؠ0.)ȩ.ȩ0ȩL0 }ȱ)LA4ƅƅ ؠƅȱƅL4ƙșʙ`̈` u4 L4 u4 (L4 u4 fL4 u4 `L4 -ș } ޠʈ`ƅȱƅȱƅȱƅ L4ƪȱƨ ޠƪȱƨ ݠƅȱƅL4 -ș L4ƅɈƅȠș } ٥Ԧ`//B`/B` 5 BLt- 5B VHI`` -ƝIƝHƝEƝD` - `` }_A [ a{``ҩ҈) ƝҠ) Ƞ)` - ȈȈ`LLi }56i66i1i1i1i1$i86%i96/©6í@@L7@"66l iàL7 }ȱ…ťiÈԑL7…ȱ…ťiåՑĈԑL7ȱňĥԑĥ8êc;%7d;&7Lt…ȱ…ťi }ÈąԄL7…ȱ…ťiñąՈąL7eȱeL6ȱňĥԑĥȑĈL7ԅԄL7ԪȱԈՆL7i‘ȱ }L6…ȱ…L6iԑȑL7ԱԊȦձՊL7iȱª¨„ iiȑÈL7ȱ }Í;88L7±ŠȦñÊL7ªȱ…ƈL7 L\8L6 ȥLB=L,=q…q…L6&L7eԅ }ȱeՅՈL78ԅȱՅՈL7ԅՅȱ :ԥL7 9L8 9ԥL7ȱդL:ԅȱՅՈL7Eԅȱ }EՅՈL7%ԅȱ%ՅՈL7ȱJfՈL7ȱL7ȱ*ՈL7ԱL78ԅԩՅL7Eԅ }ԩEՅL7L7L78Ԫȱ`ȱL7ȱԄL7 90 90 90ʊ 90ȱ }ՐɱԐȱՐзԐЭȱՐЎԐL9ȱՐ԰L9&&& L: ` }ɀE ɀf8ਊ s:$ 8$P 8`E0 IIL; 8 }Ff eeFfff$ 8`,'7E7e7666v777777j877!8E8\8u888888889%96 }9G9o99999999:::%:7:K:`:~8;+0>L>h>>>><<<<>??…ȱ…ťiÈią ȱi }ąՈL7ȱĈL7…ȱ…ťiñąՈąiȱiĈL7…ȱ…ťi8ą԰ ȱąՈL7ȱąՈL7…ȱ…}ťiñąՈą8ĐL7ȱĈL7tmL(=P]L(=…ȱ…8ԈĪCL(=…ȱ…8ԈĪ0)}L<=8ªԥiàL7Ԅՠªȱ…Æ L78ª0ƊL<=˥ԈL<=ФԈL(=}q…ԥq…L6…ȱ…ťiåqąԥqąՈL7eȱeťiåiđđL7eȱeťi}L <eȱeťiL?<eȱeťiLn<eȱeťiL<eȱeťiőđL}6eȱeňeԅȱeՅL6eȱeťiñ‘ąՈ‘ąL6eȱeűąՈąL6eȱeňąԄL6} ԄL7L7L?:6ȱeťiñ‘ąՈ‘ąL6eȱeűąՈąL6eȱeňąԄL6 &PabQwk Ver 1.1: Written by Pab Sungenis Written in TurboBasic (Compiled) ShareWare: $25 Qwk reader for the 8bit syste}m with expanded memory. Version 1.1 now saves its indexes to the disk for faster loading. PabQwk offers an AtariWriter li}ke 80 column display (one uses the shift and arrow keys to move left and right), as well as the ability to translate hi ASCI }I (ANSI) graphics into compatable AtASCII graphics. PabQwk allows for the steeling of taglines, both standard and BlueWave  } style and now offers the ability to dump the current message to your printer. Registered versions allow for the reading of } extra files often included in Qwk packets (Newsletters, newfile list and bullitins). PabQwk will run under SDX, MyDos and } AtariDos 2.5, but was found to run best under SpartaDos (SDX or 3.2d). WBUG tested PabQwk 1.1 for 2 weeks on a standard 13 }0xe attached to a 256k mio with a 10meg hard drive running SpartaDos X 4.20. We downloaded Qwk packets from all Major Qwk }tossers and have had no troubles. This program does require at least 3 banks of free memory to run and you need to run the } configure program to make sure Antic is turned off...PabQwk requires all available memory. QwkSilver Ver 0.2 Beta: Wr}itten by Bobby Clark Written in TurboBasic (Compiled) ShareWare $5 Qwk reader for the 8bit system. QwkSilver can not be} run under any version of SpartaDos due to a VBI conflict with QwkSilvers on screen clock display. QwkSilver displays mess}ages in a standard Atari 40 col screen and does not translate hi Ascii (ANSI) to AtACII graphics. QwkSilver saves it indexe}s to disk for faster booting as well as converting the CONTROL.DAT file for its own use. Features of QwkSilver include, th}e ability to page forward and backward, dump messages to printer or disk, will display extra files included in QWK packet p}rovided they are listed in CONTROL.DAT (normaly WELCOME, NewFile, BLT-x and GOODBYE), view only message titles (5 at a time}) and choose only the message lines you want to quote. QwkSilver does send out a nonstandard BlueWave style tagline. WBUG }tested QwkSilver 0.2 Beta for three weeks on a stock 130xe running AtariDos 2.5 on two 1050 drives. We downloaded Qwk packe}ts from all major Qwk tossers and have only had problems with packets generated using the JetMail door for SpitFire. } enerated using the JetMail door for SpitFire. H This is VT52A, a simple terminalemulator program written in Action!I don' know anything more about it,as I don't have A}ction! It's probably not real useful asa terminal, as there are much more capable ones around, but it's problyuseful as }an example of how to dothis kind of thing in Action!as there are much more capable ones around, but it's problyuseful as 6L  PQRS`S`QTQS`S`RTRS`S`T```}`΍``  L  $ R`Rߝ "`  + !u!L!}`*  TȌ` X"` M :``  C#  X  X  ` #     }  ` ` !``x   `X`    ҩX` !-` 6"`'   t !}ҭ ҭ L X"`SLj!J)t  X"ӭӭ)ӭ) 6"))JJJJ  "}о*`"  !$!" !& !( "*``H h`H*) ##*) +)#}h`H*)@*)0  h`H``  T 6"h`ҍҭҍ` {" #" " ")Ӡ`$} " " Ӣ`xҩs"}#2` # x # э#` 0`    %}`)Dž`'    `) |$ ~  }  0` `  0&ɛ&} ~ } ) |` `HH ~#$Ҭ )  #     &hhh@HH t L#'}hhh@ )h@ LEo=.F nVV$    &hhh@HH t L#B$$ -LU-$$%&H$$$h`$ $$$$`$ $$$$`%&&,&Q''`$`*$ ' ,` %)}$ & '` '$ 'Z & '` $ %``$L&$ %$+$$Hi<$$hLd& x& j&`$ Ң*}$`$`H)5ө -h`H =&'ө -h` % &  ($$ '`~,($$/ ɛ `%$$`+}$$`H$h`$ ~& j&ix$ &`HH +' %hh` :TTRAMS HHK' %hh`RORRE $$*$,}$$ % ' x&`$*` ' '(' ' '$` 9( (`(ҩs2`gҩҩ `h ( S ( o(-}v(` ҩ=ө=ӭӭ`$  $ $ $  $ $ $ $`)υҩ<ө<ӭӭ`HH Ҭ$ .}%hhh@$h@$h@HH % &$I$ɀ (),$ 'L( ,$hhh@Щ) ( ( 7'`((l(7' %)_/}L(ȱЪȱШ``ȘeЅАѠ)` C)ATOC)ATDPO,ATDTn)ATDn)ATBK)ATA,ATH,ATF,[H)$`$ ,H 0}& -` ',O &m)ҍҍҍҍ)*Ңe)m) 6,Xm):N0 *#B.))8)H) *i)*j)hJ)1} *k) *l)x * *(@L{) ' ,X`  a'+0d)c)f),e) *JJJJ *b)h),g) *) *mb)i)<2}c)0 a)Lc*JJ a)d)+آe)}i)e)f)}j)f)c)Ic)0*+d)Ж`+ ԘJJJJ  ԍҘ)  ԍ`)*@3}*`I`!!222BCCSSTdddtuu,-}ise the prompt. Whenat the SMARTT: prompt, the followingHayes smart-modem commands areaccepted.SMART T command summary"?}:atdt - pulse dial a number, for example ATDT7296046 dials and connects to NCAUG.atdp - pulse dial,"@} like atdt is tone dial.ato - if you are at the SMARTT: prompt but you just want to go back online, g"A}et connected by saying ATOatb - send a .5 second break signalata - put modem into Answer mode, to pick up"B} the phoneath - hang up the phoneatf - set full/half duplex toggleThat is the limited set of smartmodemcommands sup"C}ported by SMARTT. Inpractice, SMARTT does not seem towork with some programs. However, itdoes work with some R: telecom"D}programs when R.BIN doesn't.e, SMARTT does not seem towork with some programs. However, itdoes work with some R: telecom L  TUVW`W`UXUW`W`VXVW`W`X```&F}`Α``  L  s$ R`R /#/$` ) 9&G} !d!L!`*  XȌ` "` Q >``  #  f  f  ` # &H}     d !` ``x   dX`    ҩX` !-` "`' &I} x ҭ ҭL "`WLY!J) ӭ) ӭ ݭ*`&J}%"  !" !$ !& /"(!" Q"*``H h`H*)ɀh` + : + : + : ! !A : T : H : : i- ! &K} h`iZ  `H*) S$T$*) +)h`H*)@*)0  h`H`&L}`  X "h`ҍҭҍ`"# " q" " ")Ӡ` %# # Ӣ`xҩs2&M}` # ƍ # $` 0`    `)Dž`'    &N}`) |$ ~  }#r$  0` `  0&ɛ ~ } ) |` `HH &O}Ҭ )  \#     *hhh@HH x L$hhh@)h@II)&P}h@ LEo=.F nVVs$ x L$hhh@)h@II)$6[This version of sx212 is supposed to work with Kermit-65 -- jrd] ========== SXCMPT.DOC: =================================*R}================= THE SX-212 COMPANION -------------------- Our local user group has put together a program that will a*S}llow you to use the 850 Express! terminal program with the SX-212 modem. We call this file "The SX-212 Companion!" SET*T}TING UP ---------- Two versions of the SX-212 Companion! are included on this disk. One version is named LOADER.LOW. *U} This version loads at $1D00 and works with most DOS's in their standard configuration (generally 2 or 3 drives, with a LOME*V}M of $1D00 or lower). The other version is named LOADER.HI. This version loads at $2000 and allows more memory for drive*W} buffers but will reduce your terminal buffer by about 750 bytes. Name either LOADER program AUTORUN.SYS and place it on*X} your terminal disk. The SX Companion! will ONLY work with an unaltered copy of 850 Express! version 3.00p. Your copy of *Y}850 Express! should be named EXPRESS.850 and placed on the same disk with the AUTORUN.SYS file created above. CREDITS -----*Z}-- The Rverter handler was originally written by Royce W. Powell for A.I.D. in 1984. Carrier Detect for the SX212 was adde*[}d by Tom Neitzel and DTR emulation was added by Marc Ingle, December, 1987. Modifications to the Status routines were also *\}made. Both Marc and Tom are members of the Seattle Puget Sound Atari Computer Enthusiasts (S*P*A*C*E). Source code is avail*]}able upon request through S*P*A*C*E, P.O. Box 110576, Tacoma, WA 98411. puter Enthusiasts (S*P*A*C*E). Source code is avail(I;'''''''''''''''''''''''''''''''''''' ; "TVI925.ACT" - A display-list based ; terminal emulator by Charles Green. ; ; Derived._} from the public domain VT52+ ; emulator written by Michael Jenkin. ;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, MODULE ;A: handler,.`} originally by Jenkin. DEFINE LDY = "$A0", RTS = "$60", JMP = "$4C", PLA="$68", GR8 = "$0F", SKIP8 = "$70", JVP = "$41",.a} LMS = "$40", RTI="$40", ESC = "1", CUP = "2", SGR = "3", PHA= "$48", TAX= "$AA", TXA= "$8A", TAY="$A8",TYA="$98", CMO = .b}"4", XITVBV = "$E462" TYPE line = [BYTE mode CARD adrs] BYTE ARRAY display(8831) ;data+dlist BYTE ARRAY enhance(8), cursor.c}(4) line POINTER dlist BYTE POINTER curln ;current line data BYTE pmbase = $D407, gractl=$D01D, lmargin = $52, rmargin = $53.d}, rowcrs = $54, colcrs = $55, brkcnt, gprior = $26F, pcolr0 = $2C0, audc1 =$D201, hposm0 = $D004, sdmctl = $22F, soundr =.e} $41, saudc1, ; audf1 = $D200, ; sskctl = $232, skctl = $D20F, state, need, needx, ins_mode, curcnt CARD ; savmsc = $58, s.f}dlist = $230,cursad,keydef = $79, vvblkd = $224, brkky = $236 BYTE ARRAY xlate = [ ; New kbd map $6C $6A $3B $80 $80 $6B $2.g}B $2A $6F $80 $70 $75 $0D $69 $2D $3D $76 $FF $63 $80 $80 $62 $78 $7A $34 $80 $33 $36 $1B $35 $32 $31 $2C $20 $2E $6E $80 $6D.h} $2F $7E $72 $80 $65 $79 $09 $74 $77 $71 $39 $80 $30 $37 $08 $38 $3C $3E $66 $68 $64 $80 $82 $67 $73 $61 ;lowr $4C $4A $3A $8.i}0 $80 $4B $5C $5E $4F $80 $50 $55 $0D $49 $5F $7C $56 $FF $43 $80 $80 $42 $58 $5A $24 $80 $23 $26 $1B $25 $22 $21 $5B $20 $5D.j} $4E $80 $4D $3F $60 $52 $80 $45 $59 $FE $54 $57 $51 $28 $80 $29 $27 $7F $40 $7B $7D $46 $48 $44 $80 $82 $47 $53 $41 ;uper $0.k}C $0A $F0 $80 $80 $0B $1C $1E $F0 $80 $10 $15 $0A $09 $1F $F0 $16 $FF $03 $80 $80 $02 $18 $1A $F0 $80 $F0 $F0 $1B $F0 $F0 $F0.l} $1B $00 $1D $0E $80 $0D $7F $F0 $12 $80 $05 $19 $FD $14 $17 $11 $F0 $80 $F0 $F0 $7F $00 $F0 $F0 $06 $08 $04 $80 $82 $07 $13 .m}$01 ;ctrl ] PROC vbi() IF curcnt = 0 THEN pcolr0 ==! 5 ;invert cursor curcnt = 15 ELSEIF curcnt < 255 THEN curcnt =.n}=- 1 FI IF saudc1 > $E0 THEN saudc1 ==- 1 audc1 = saudc1 ; SOUND(2,100,14,bel) FI IF .o}brkcnt THEN brkcnt ==- 1 IF brkcnt = 0 THEN ; sskctl ==& $7F ;remove force space ; skctl = sskctl skctl = $73 FI .p}FI [JMP XITVBV] PROC brk() ;break interrupt handler ; [TYA PHA TXA PHA] brkcnt = 15; ; sskctl ==% $80 ;force serial space .q}; skctl = sskctl skctl = $F3 ; [PLA TAX PLA TAY] [PLA RTI] PROC del_ch(BYTE POINTER adr, BYTE col) BYTE POINTER badr,wadr.r} BYTE x, y, bcount bcount = (80-col) RSH 1 FOR y = 1 TO 7 DO adr ==+ 40 wadr = adr + (col RSH 1) - 1 badr = wadr + .s}1 IF col & 1 THEN badr ==+ 1 wadr ==+ 1 wadr^ =(wadr^ & $F0)%(badr^ RSH 4) FI x = bcount WHILE x > 0 DO .t} badr ==+ 1 wadr ==+ 1 wadr^ =(wadr^ LSH 4)%(badr^ RSH 4) x ==- 1 OD wadr^ ==& $F0 OD RETURN ; null proc for n.u}ow PROC ins_ch(BYTE POINTER adr, BYTE col) BYTE POINTER badr,wadr BYTE x, y, bcount bcount = (79-col) RSH 1 FOR y = 1 TO.v} 7 DO adr ==+ 40 badr = adr + 39 wadr = badr - 1 x = bcount WHILE x > 0 DO badr^ =(wadr^ LSH 4)%(badr^ RSH 4).w} x ==- 1 badr ==- 1 wadr ==- 1 OD IF col & 1 THEN badr^ ==& $F0 ELSE badr^ ==RSH 4 FI OD RETURN ; nu.x}ll proc for now PROC Achr(BYTE cx, cy, cc) BYTE POINTER base, offset BYTE i, chr, c BYTE ARRAY chset = [ $00 $00 $00 $0.y}0 $00 $00 $00 ; SP $44 $44 $44 $00 $44 $00 $00 $AA $AA $00 $00 $00 $00 $00 $AA $EE $AA $EE $AA $00 $00 $EE $CC $EE $6.z}6 $EE $00 $00 $AA $22 $44 $88 $AA $00 $00 $CC $44 $CC $EE $EE $00 $00 $66 $22 $44 $00 $00 $00 $00 $22 $44 $44 $44 $22.{} $00 $00 $88 $44 $44 $44 $88 $00 $00 $00 $AA $EE $AA $00 $00 $00 $00 $44 $EE $44 $00 $00 $00 $00 $00 $00 $66 $22 $44 .|}$00 $00 $00 $EE $00 $00 $00 $00 $00 $00 $00 $66 $66 $00 $00 $22 $22 $44 $44 $88 $88 $00 $44 $AA $AA $AA $44 $00 $00 ;.}}'0' $44 $CC $44 $44 $EE $00 $00 $CC $22 $44 $88 $EE $00 $00 $CC $22 $44 $22 $CC $00 $00 $AA $AA $EE $22 $22 $00 $00 .~} $EE $88 $CC $22 $CC $00 $00 $44 $88 $EE $AA $44 $00 $00 $EE $22 $44 $88 $88 $00 $00 $44 $AA $44 $AA $44 $00 $00 $44 .}$AA $66 $22 $44 $00 $00 $66 $66 $00 $66 $66 $00 $00 $66 $66 $00 $66 $22 $44 $00 $22 $44 $88 $44 $22 $00 $00 $00 $EE $.}00 $EE $00 $00 $00 $88 $44 $22 $44 $88 $00 $00 $CC $22 $44 $00 $44 $00 $00 $44 $AA $AA $88 $66 $00 $00 ;'@' $44 $AA $.}EE $AA $AA $00 $00 $CC $AA $CC $AA $CC $00 $00 $66 $88 $88 $88 $66 $00 $00 $CC $AA $AA $AA $CC $00 $00 $EE $88 $CC $8.}8 $EE $00 $00 $EE $88 $CC $88 $88 $00 $00 $66 $88 $AA $AA $66 $00 $00 $AA $AA $EE $AA $AA $00 $00 $EE $44 $44 $44 $EE.} $00 $00 $66 $22 $22 $AA $EE $00 $00 $AA $CC $88 $CC $AA $00 $00 $88 $88 $88 $88 $EE $00 $00 $AA $EE $EE $AA $AA $00 .}$00 $CC $AA $AA $AA $AA $00 $00 $66 $AA $AA $AA $CC $00 $00 $CC $AA $CC $88 $88 $00 $00 ;'P' $66 $AA $AA $AA $EE $22 .}$00 $CC $AA $CC $CC $AA $00 $00 $66 $88 $CC $22 $EE $00 $00 $EE $44 $44 $44 $44 $00 $00 $AA $AA $AA $AA $66 $00 $00 .} $AA $AA $AA $44 $44 $00 $00 $AA $AA $EE $EE $AA $00 $00 $AA $AA $44 $AA $AA $00 $00 $AA $AA $44 $44 $44 $00 $00 $EE .}$22 $44 $88 $EE $00 $00 $66 $44 $44 $44 $66 $00 $00 $88 $88 $44 $44 $22 $22 $00 $CC $44 $44 $44 $CC $00 $00 $44 $AA $.}00 $00 $00 $00 $00 $00 $00 $00 $00 $EE $00 $00 $66 $44 $22 $00 $00 $00 $00 $00 $CC $66 $AA $66 $00 $00 ;'a' $88 $CC $.}AA $AA $CC $00 $00 $00 $66 $88 $88 $66 $00 $00 $22 $66 $AA $AA $66 $00 $00 $00 $EE $EE $88 $66 $00 $00 $22 $44 $EE $4.}4 $44 $00 $00 $00 $66 $AA $AA $66 $22 $CC $88 $EE $AA $AA $AA $00 $00 $44 $00 $CC $44 $EE $00 $00 $44 $00 $CC $44 $44.} $88 $00 $88 $88 $AA $CC $AA $00 $00 $CC $44 $44 $44 $EE $00 $00 $00 $CC $EE $EE $AA $00 $00 $00 $CC $AA $AA $AA $00 .}$00 $00 $66 $AA $AA $CC $00 $00 $00 $CC $AA $AA $CC $88 $88 ;'p' $00 $66 $AA $AA $66 $22 $22 $00 $EE $88 $88 $88 $00 .}$00 $00 $CC $EE $22 $CC $00 $00 $44 $EE $44 $44 $44 $00 $00 $00 $AA $AA $AA $66 $00 $00 $00 $AA $AA $44 $44 $00 $00 .} $00 $AA $EE $EE $66 $00 $00 $00 $AA $44 $AA $AA $00 $00 $00 $AA $AA $AA $66 $22 $CC $00 $EE $44 $88 $EE $00 $00 $66 .}$44 $88 $44 $66 $00 $00 $44 $44 $44 $44 $44 $00 $00 $CC $44 $22 $44 $CC $00 $00 $CC $66 $00 $00 $00 $00 $00 $AA $44 $.}AA $44 $AA $44 $AA ] ;strip high bit (inverse video) offset = cc - $20 ;display character dlist=sdlist + cy * .}10 + 3 base = dlist.adrs + (cx RSH 1) + 40 IF ins_mode THEN ins_ch(dlist.adrs, cx) FI offset = chset+(offset LSH 3)-off.}set FOR i = 1 TO 7 DO c = offset^ c = c XOR enhance(i) chr = base^ IF (cx & 1) THEN c ==& $0F .} chr ==& $F0 ELSE c ==& $F0 chr ==& $0F FI base^ = chr % c .}base ==+ 40 offset ==+1 OD RETURN PROC Acurse(); move cursor BYTE old_y ;Where we left cursor Zero(cursad+(old_y LSH .}2), 4) hposm0 = (colcrs LSH 1) + 48 MoveBlock(cursad+(rowcrs LSH 2),cursor,4) old_y = rowcrs ;memory for later clr pcolr0.}=5 IF curcnt < 255 THEN curcnt=254 FI RETURN PROC scroll(BYTE first, last) line POINTER tdlist CARD tempadrs INT del.}ta BYTE i dlist=sdlist+3 + first*10 tempadrs=dlist.adrs Zero(tempadrs,320) IF first>last THEN i=first first=last .} last=i delta=-1 ELSE delta=1 FI FOR i=first+1 TO last DO tdlist = dlist+10 *delta dlist.adrs = tdlis.}t.adrs dlist = tdlist OD dlist.adrs = tempadrs RETURN PROC Amargin() ; keep between margins IF colcrs > rmargin THEN .} colcrs = lmargin rowcrs ==+ 1 FI ;fallthrough to Ascroll() PROC Ascroll() ; roll screen if req'd IF rowcrs > 23 THEN s.}croll(0,23) rowcrs = 23 FI RETURN PROC curpos(BYTE chr) IF need = 2 THEN ; 1st ESC Y needx = chr - $20 need ==- 1 .}ELSEIF need = 1 THEN ; 2nd ESC Y chr ==- $20 IF (needx <= 23) AND (chr <= rmargin) THEN colcrs = chr rowcrs = needx.} ; Acurse() FI state = 0 FI RETURN PROC cursat(BYTE chr) ;cursor type IF chr = '2 THEN ;blinking block? curcnt = .}254 SetBlock(cursor,4,3) ELSEIF chr = '4 THEN ;steady line? curcnt = 255 SetBlock(cursor,3,0) cursor(3) = 3 FI pco.}lr0=5 ;third-intensity cursor state=0 RETURN PROC attrib(BYTE chr) ; enhance IF chr = '0 THEN Zero(enhance, 8) ELSEIF .}chr = '4 THEN ; reverse SetBlock(enhance, 8, $FF) ELSEIF chr = '8 THEN ; underline Zero(enhance, 8) enhance(6) = $FF .}ELSEIF chr = '> THEN ; both modes SetBlock(enhance, 8, $FF) enhance(6) = $00 FI state = 0 RETURN PROC Aesc(BYTE chr) .}; escape sequence BYTE ch CARD i IF chr = 'E THEN ; insert line dlist=sdlist+3+rowcrs*10 scroll(23,rowcrs) ELSEIF chr.} = '. THEN ; cursor attrib state = CMO ; cursor rendition RETURN ELSEIF chr = 'G THEN ; inverse off state = SGR ; sele.}ct rendition RETURN ELSEIF chr = 'I THEN ; back tab colcrs = (colcrs - 1) & $F8 ELSEIF chr = 'j THEN ; reverse lf IF .}rowcrs > 0 THEN rowcrs ==- 1 ELSE scroll(23,0) FI ; Acurse() ELSEIF chr = '* THEN ; home & clear rowcrs = 0 .} colcrs = 0 Aesc('Y) ; erase to EOS ( y?? ) ELSEIF chr = 'Y OR chr = 'y THEN FOR ch = colcrs TO 79 DO Achr(ch,row.}crs,' ) OD IF rowcrs < 23 THEN dlist=sdlist+3+10*rowcrs FOR i = rowcrs+1 TO 23 DO .} dlist==+ 10 Zero(dlist.adrs,320) OD FI ; Acurse() ; erase to EOL ELSEIF chr = 'T OR chr = 't THEN FOR ch = c.}olcrs TO 79 DO Achr(ch,rowcrs,' ) OD ; Acurse() ELSEIF chr = 'R THEN ; delete line dlist=sdlist.}+3+10*rowcrs scroll(rowcrs,23) ELSEIF chr = '= THEN ; cursor addr state = CUP need = 2 RETURN ELSEIF chr = 'Q THEN .}; insert char dlist=sdlist+3+10*rowcrs ins_ch(dlist.adrs,colcrs) ELSEIF chr = 'W THEN ; delete char dlist=sdlist+3+10*.}rowcrs del_ch(dlist.adrs,colcrs) ELSEIF chr = 'Z THEN ; multi-insert ins_mode = 1; ELSEIF chr = 'r THEN ; end multi-ins.} ins_mode = 0; ELSEIF chr = 'b THEN ; BlackOnWhite SetColor(2,0,15) SetColor(1,0,0) ELSEIF chr = 'd THEN ; WhiteOnBla.}ck SetColor(2,0,0) SetColor(1,0,15) FI state = 0 RETURN PROC Aopen() BYTE i sdmctl=0 ;No Antic DMA till DL re.}ady vvblkd=vbi ;Put our vbi routine in brkky=brk ;Put our break routine in ; Examine data array for alignment sdlist=(disp.}lay & $F000) + $1C80 pmbase=sdlist RSH 8 ;page of plr/mis cursad=sdlist+$100 dlist=sdlist FOR i = 0 TO 2 DO dlist.mode .}= SKIP8 dlist==+1 OD curln=display FOR i=0 TO 23 DO IF (curln = sdlist) THEN curln==+ $180 FI IF (curln & $FFF).} > $EC0 THEN curln = (curln & $F000) + $1000 FI dlist.mode = GR8 + LMS dlist.adrs = curln SetBlock(dlist+3,7,GR8) .} curln==+ 320 dlist ==+ 10 OD dlist.mode = JVP dlist.adrs = sdlist SetColor(2,0,0) ; was 0,0,0 SetColor(1,0,15) ; was.} 1,12,15 SetColor(4,0,2) ; new - border gprior=8 ;cursor behind letters gractl=1 ;turn missiles on sdmctl=$26 ;enabl.}e missile DMA Zero(cursad,128) ;clear missile data cursad ==+ 16 ;true top of screen state = 0 lmargin = 0 rmargin = 79 .} rowcrs = 0 colcrs = 0 Acurse() attrib('0) ;normal video cursat('4) ;normal cursor [LDY 1 RTS] PROC Aclose() [LDY 1.} RTS] PROC Aput(BYTE areg) IF state = ESC THEN; escape sequence Aesc(areg) ELSEIF state = CUP THEN ; cursor pos curpos.}(areg) ELSEIF state = CMO THEN ; curs enhnc cursat(areg) ELSEIF state = SGR THEN ; enhance attrib(areg) ELSEIF areg = .}$1B THEN ; ESC state = ESC ELSEIF areg = $1A THEN ; ClearScreen colcrs = 0 rowcrs = 0 Aesc('Y) ELSEIF areg = $1E TH.}EN ; home colcrs = 0 rowcrs = 0 ; Acurse() ELSEIF areg = $0B THEN ; cursor up IF rowcrs > 0 THEN rowcrs ==- 1 ; .}Acurse() FI ELSEIF areg = $16 THEN ; cursor down IF rowcrs < 23 THEN rowcrs ==+ 1 ; Acurse() FI ELSEIF areg = $.}0C THEN ; cursor right IF colcrs < rmargin THEN colcrs ==+ 1 ; Acurse() FI ELSEIF areg = $0D THEN ; CR colcrs = .}lmargin ; was = 0 ELSEIF areg = $0A THEN ; lf rowcrs ==+ 1 IF colcrs > rmargin THEN colcrs = 0 ;altos vi kl.}udge FI Ascroll() ELSEIF areg = $08 THEN ; BS IF colcrs > lmargin THEN ;was >0 colcrs ==- 1 ELSEIF rowcrs > 0 TH.}EN ;bs wraps colcrs = rmargin rowcrs==- 1 FI ELSEIF areg = $07 THEN ; bell saudc1 = $F0 ; bel = 16 ; vbi() will pi.}ckup ELSEIF areg = $09 THEN ; TAB colcrs = (colcrs + 8) & $F8 Amargin() ELSEIF areg > $1F THEN ;printable Amargin().} ;new here Achr(colcrs,rowcrs,areg) colcrs ==+ 1 ;ELSE unrecognized control-nothing FI Acurse() ;update cursor [LDY 1 .}RTS] PROC Anofunc() [RTS] PROC Adummy() [LDY 1 RTS] PROC Ahandler() BYTE ARRAY hatabs = $031A BYTE pos, found .} ;do not change the following 3 lines CARD ARRAY atab(6) BYTE Jump = [JMP] CARD init ; define device entry points atab(0.}) = Aopen - 1 ;OPEN atab(1) = Aclose - 1 ;CLOSE atab(2) = Anofunc - 1 ;READ atab(3) = Aput - 1 ;WRIT.}E atab(4) = Adummy - 1 ;STATUS atab(5) = Anofunc - 1 ;SPECIAL init = Adummy ;INIT ; find entry in ha.}tabs found = 0; pos = 0 WHILE (pos < 34) AND (found = 0) DO IF hatabs(pos) = 0 THEN found = 1 ELSE pos ==+ 3 .}FI OD IF found = 0 THEN PrintE("*** A: too many devices") ELSE hatabs(pos) = 'A hatabs(pos + 1) = atab & 255 hatab.}s(pos + 2) = atab RSH 8 FI RETURN ;******************************* ;* MAIN PROGRAM ;******************************* MODU.}LE BYTE ch = $02FC, bcount = $02EB, speed = [3], ;CWG 1=300BPS 3=1200 wsize = [0], sbits = [0], lf = [0], iparity = [.}0], oparity = [0] PROC init_R(); set options for R: Close(3) Open(3,"R:",13,0) XIO(3,0,38,lf*64+32+iparity*4+opa.}rity,0,"R1:") ;32=no xlate XIO(3,0,36,speed+7+wsize*16+128*sbits,0,"R1:") XIO(3,0,34,192,0,"R1:") XIO(3,0,40,0,0,"R1:") ;c.}oncurrent IO bcount = 0 RETURN PROC init_A(); set up A: device Ahandler() ; install A: handler Close(2) ; Gr.}aphics(8+16) Open(2,"A:",8,0) RETURN PROC intro() soundr=0 Close(7) Open(7,"K:",4,0) keydef = xlate ; load key trans.}late init_R() init_A() soundr=0 RETURN PROC do_remote(); process remote BYTE chr BYTE stop = [0] BYTE HIWAT = [128] .}XIO(3,0,13,0,0,"R:") IF bcount > HIWAT THEN PutD(3,$13) ;XOFF stop=1 FI WHILE bcount > 0 DO chr = GetD(3) Put.}D(2,chr & $7F) bcount ==- 1 OD IF stop THEN PutD(3,$11) ;XON stop=0 FI RETURN PROC do_local(); proce.}ss local BYTE chr IF $FF - ch THEN ;INPUT chr = GetD(7) PutD(3,chr) FI ; END IF CHAR RETURN PROC main() .} intro() DO do_remote() do_local() OD RETURN chr = GetD(7) PutD(3,chr) FI ; END IF CHAR RETURN PROC main() ,4Date: 8 Apr 90 23:27:58 GMT From: c3pe!c3pe.c3.com!charles@decuac.dec.com (charles Green) Subject: TVI925.ACT - 80 column te2}rminal emulator (1 of 1) Message-ID: <8538@c3pe.C3.COM> To: INFO-ATARI8@WSMR-SIMTEL20.ARMY.MIL Well, I've gotten enough resp2}onses that I'd annoy my UUCP neighbor by mailing this file out that many times, so I guess it'll be better to post it. A cou2}ple of things I never got around to doing: o Adding a character count to the data in each line, maybe in the byte just befor2}e the 320-byte area where the characters for each line are "stenciled" in for display. This count could be used to speed up 2}the insert-character and clear-to-end-of-line operations; they'd no longer have to go all the way out to column 80 if there w2}as no data displayed out that far. o Adding a single graphics-0 display line, either at the top or bottom of the screen, whi2}ch could hold the current baud rate, parity, etc. (assuming that someone adds the code to change them, in addition to maybe 2}brightness). (P.S. - I've since discovered that luminance values of 0 for brightness, 2 or 4 for cursor, and 6 for the charac2}ters works better than the values in this program. You also probably want to put the contrast at a minimum.) o Smooth scrol2}ling. Enjoy, Charles Green charles@c3.COM --------------- >=8 ----------------- the contrast at a minimum.) o Smooth scrol0Q"